strace cvs commit *php 2>&1 | grep lock
this calls strace on the command and redirects stderr to stdin. If you don't do this the grep will still be mucky, because it will only filter stdout.
The result is as follows:
modulename@ser-6:/export/modulename/admin$ strace cvs commit *php 2>&1|grep lock
stat64("/var/lock/cvs/modulename/admin", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
mkdir("/var/lock/cvs/modulename/admin/#cvs.lock", 0777) = 0
stat64("/var/lock/cvs/modulename/admin", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/var/lock/cvs/modulename/admin/#cvs.wfl.ser-6.31926", O_RDWR|O_CREAT|O_TRUNC, 0666) = 3
stat64("/var/lock/cvs/modulename/admin", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
unlink("/var/lock/cvs/modulename/admin/#cvs.wfl.ser-6.31926") = 0
stat64("/var/lock/cvs/modulename/admin", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
rmdir("/var/lock/cvs/modulename/admin/#cvs.lock") = 0
and there are the lock files plain to see. All I had to do was remove them and then re-try the commit
christo